In telecommunication systems, a transmission channel often causes interference to data transmission. Interference occurs in all systems, but in particular in wireless telecommunication systems the radio path attenuates and distorts the signal to be transmitted in a variety of ways. On the radio path, interference is typically caused by multipath propagation, various fades and reflections and also other signals transmitted on the same radio path.
To reduce the effects of interference various encoding methods have been developed, which aim to protect the signal from interference and which also aim to eliminate interference-induced errors in the signal. One widely used encoding method is convolutional coding. In the convolutional coding the signal to be transmitted, consisting of symbols, is encoded into code words which are based on the convolution of the original signal with code polynomials. The convolutional code is determined by the coding rate and the coding polynomials. The coding rate (k/n) refers to the number (n) of produced coded symbols in relation to the number (k) of symbols to be coded. The encoder is often implemented by means of shift registers. The constraint length K of the code often refers to the length of the shift register. The encoder can be considered a state machine having 2k states.
One encoding method further developed from the convolutional code is a parallel concatenated convolutional code PCCC, which is also known as a turbo code. One way to generate a PCCC code is to use two recursive systematic convolutional encoders and an interleaver. The convolutional encoders can be identical or different. The resulting code comprises a systematic part which corresponds directly to the symbols at the encoder input and two parity components which are the outputs of the parallel convolutional encoders.
It is advantageous in practical implementations if the initial and final states of the encoder are previously known. Therefore, the coding is often started at a given state and finished at a predetermined known state. In coding this encoder transition to a known, predetermined final state is called termination, and the bits to be encoded during the transition, the bits not being actual data, are called termination bits. The initial state often comprises only zero bits, and likewise, the termination transfers the encoder back to the zero state. However, this is not always necessary.
The function of the receiver, in turn, is to decode the coded signal that has propagated over the radio path and often distorted in a variety of ways. In general, the convolutional code is decoded by means of a so-called state diagram, i.e. trellis, which corresponds to the state machine of the encoder. The trellis presents the states of the encoder and the transitions between the states with necessary code words.
The target of the decoder is to determine the sequential states of the encoder, i.e. the transitions from one state into another. To determine the transitions, the decoder calculates so-called branch metrics which describe probabilities of different transitions. The branch metrics are proportional to the logarithms of transition probabilities. Hence, the sums of the metrics correspond to the mutual products of the probabilities. Low metrics correspond to high probability.
In some turbo coding methods, termination bits of code components are code-component-specific. This has a result that the termination bits of the code components of the code word require a different treatment from the rest of the code component. This is the case in particular if the termination method does not apply a turbo-code interleaver to the termination bits. The samples corresponding to the termination bits are called termination samples at the receiver end: the receiver does not know the original termination bits (nor any other transmitted bits), because the radio path has distorted the received code word.
In general, the decoding algorithms of the turbo codes cannot utilize received code word samples remaining outside the effect of the interleaver, because these samples do not belong to the actual code word of the turbo code. Consequently, the samples corresponding to the termination bits, i.e. termination samples, have to be decoded in another manner than the samples of the actual code word.